#文件基本操作
#文件 就是存储于长期存储设备上的一段数据 .txt .py 分为文本文件(txt,直接能打开看,给人看) 二进制文件(图片,只能用特定设备打开,给其他设备看)
#文件操作 打开文件-->读/写文件-->关闭文件
#文件对象方法
#open() 创建一个file(文件)对象,以只读的方式打开
#read(n) n代表读取文件的长度,没有代表读取文件全部内容
#write() 将指定内容写入文件
#close() 关闭文件
#文件属性
#文件名.name 返回要打开的文件的文件名,可以返回具体的文件路径 就是返回文件的名字或路径
#文件名.mode 返回文件的访问模式
#文件名.closed 检测文件是否被关闭 关闭返回Ture 否则返回False
#1打开文件 一定要配上关闭文件,不然会一直占用内存 如果中间出现报错没有执行到关闭文件则会占用系统内存 所以使用异常捕获,确定可以关闭文件
#open(文件名(可以是路径),编码)
f = open("test.txt",encoding="utf-8") #以中文字符的形式编码
f2 = open(r"C:\Users\a2038\Desktop\河北工程技术学院.txt",encoding="utf-8")  #r代表里面全为字符串 这是打开一个桌面上的文件
try: #就算中间出现报错,也可继续向下运行,直到销毁文件
    print(f.name)
    print(f.mode)
    print(f.readline())
    print(f.read())
    # print(f2.name)
    # print(f2.read())
except Exception as e:
    print(e)
#2关闭文件
f.close()
f2.close()
print(f.closed)
print(f2.closed)
#read(n) n代表读取文件的长度,没有代表读取文件全部内容
#readline() 读取一行,方法完成文件指针到下一行,再次调用读取下一行 自带一个\n换行 当文件太大无法一次全读时,通过一行一行慢慢读取
#循环读取文件全部内容
f = open("test.txt",encoding="utf-8")
try:
    while True:
        text = f.readline()
        if not text:
            break
        print(text)
except Exception as e:
    print(e)
f.close()
if f.closed:
    print("文件已销毁")
else:
    print("文件未销毁")
#readline() 按行的方式一次读取所有内容 返回一个列表,每一行数据变成里面的元素
f = open("test.txt",encoding="utf-8")
try:
    print(f.readlines())
except Exception as e:
    print(e)
f.close()
if f.closed:
    print("文件已销毁")
else:
    print("文件未销毁")
